package ae.pcfc.etks.cld.to.web.controller.base;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import org.springframework.web.bind.annotation.ModelAttribute;

import ae.pcfc.etks.cld.service.common.vo.CountryVO;
import ae.pcfc.etks.cld.service.common.vo.EmirateVO;
import ae.pcfc.etks.cld.service.common.vo.LabelVO;
import ae.pcfc.etks.cld.service.common.vo.SystemValuesVO;
import ae.pcfc.etks.cld.to.web.Constants;

public abstract class BaseNewVisaController extends BasePageController {

	
	@ModelAttribute(Constants.__COUNTRY_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateCountryList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<CountryVO> countriesVO = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		return labelList;
	}
	
	@ModelAttribute(Constants.__EMIRATES_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateEmirateList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<EmirateVO> emiratesVO = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	
	@ModelAttribute(Constants.__EMPLOYEE_TYPE_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateEmployeeTypeList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		List<SystemValuesVO> employeeTypes = null;
		
		
			labelVO.setId("test");
			labelVO.setLabelAr("en");
			labelVO.setLabelAr("ar");
			labelList.add(labelVO);
		
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__OPTION_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateOptionList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> options = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__ACCOMMODATION_STATUS_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateAccommodationStatusList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> accommodationStatusList = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__JOB_CODE_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populateJobCodeList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> jobCodes = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__RP_PERIOD_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populatePRPeriodList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> RPPeriods = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__PRIORITY_LIST_REQUEST_MODEL_KEY)
	public List<LabelVO> populatePriorityList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> priorities = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__RELIGION_REQUEST_MODEL_KEY)
	public List<LabelVO> populateReligionList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> religions = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__GENDER_REQUEST_MODEL_KEY)
	public List<LabelVO> populateGenderList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> genders = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__MARITAL_STATUS_REQUEST_MODEL_KEY)
	public List<LabelVO> populateMaritalStatusList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> maritalStatuses = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__MEDICAL_TYPE_REQUEST_MODEL_KEY)
	public List<LabelVO> populateMedicalTypeList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> medicalTypes = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__BANK_GUARANTEE_REQUEST_MODEL_KEY)
	public List<LabelVO> populateBGFlagList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		List<SystemValuesVO> BGFlags = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__QUALIFICATION_REQUEST_MODEL_KEY)
	public List<LabelVO> populateQualificationList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> qualificationList = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	
	@ModelAttribute(Constants.__LANGUAGES_REQUEST_MODEL_KEY)
	public List<LabelVO> populateLanguagesList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> languagesList = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}

	@ModelAttribute(Constants.__CURRENT_VISA_TYPE_REQUEST_MODEL_KEY)
	public List<LabelVO> populateCurrentVisaTypeList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> currentVisaTypeList = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
	@ModelAttribute(Constants.__LAST_ENTRY_PORT_REQUEST_MODEL_KEY)
	public List<LabelVO> populateLastEntryPortList(Locale locale){
		List<LabelVO> labelList = new ArrayList<LabelVO>();
		LabelVO labelVO = new LabelVO();
		
		labelList.add(labelVO);
		
		List<SystemValuesVO> portList = null;
		
		labelVO.setId("test");
		labelVO.setLabelAr("en");
		labelVO.setLabelAr("ar");			
		labelList.add(labelVO);
		
		return labelList;
	}
}
